import React, { useState, useEffect, useRef, useMemo, useCallback, useReducer, useContext } from 'react'
// mobox  react-redux
// 内置hooks
// 自定义hooks
// HOC  高阶组件  (属性代理, 反向继承)

function init() {
    console.log('我是初始化函数')
}

export default function FunCom() {
    const [sum, setSum] = useState(100)
    const [obj, setObj] = useState({
        name: "张三",
        age: 18,
        info: {

        }
    })
    const html = useRef(100)
    // useMemo  缓存值
    // useCallback   缓存函数
    // useReducer   定义复杂类型数据（可以自行模拟redux）
    // useContext   嵌套传值
    useEffect(() => {
        setObj({
            ...obj,
            age: 30
        })
        init()
    }, [])

    useEffect(() => {
        init()
    }, [sum])

    useEffect(() => {
        // 销毁的时候会执行
        return () => {

        }
    })
    return (
        <div>FunCom--{ html }</div>
    )
}
